1. Field of the Invention
The invention relates in general to the field of digital computer communications and, more particularly, to computer communications over a Universal Serial Bus communications link. Specifically, the invention describes a modem system in which the modem""s digital signal processing functions is separated (functionally and physically) from the modem""s controller function.
2. Description of the Related Art
High speed modem systems are typically incorporated onto an option card and usually include a xe2x80x9cdata pumpxe2x80x9d for supporting the various protocols of modem communication, such as the V.22, V.22bis, V.32 and V.32bis protocols recommended by the International Telegraph and Telephone Consultative Committee (CCITT). The data pump itself typically includes a DSP for performing modulation, demodulation and echo cancellation and a coder-decoder (CODEC) for performing analog to digital (A/D) and digital to analog (D/A) conversion. Analog signals from the phone line are digitized by the CODEC, and then demodulated by the DSP to extract the original digital data sent by an external device. This procedure is reversed for data transmitted by the modem to the external device.
The data pump is coupled to the phone line through a data channel interface. Other support logic is typically included to interface the modem to the computer system, such as a microcontroller for establishing a communications link, controlling the sequence of events to originate or answer a call, and to transmit or receive digital data from the computer system through a universal synchronous receive transmission (UART) across the I/O bus.
Low-level data pump control is needed where millisecond timing is required. Some primary items that require this kind of timing is interrupt service routines, and work-arounds (where small, but time-critical, data pump interactions are necessary). Normally, these kind of operations are shielded from upper-level control software by an additional controller (i.e., PC software controlling a modem through AT commands) An 8-bit controller provides the higher level interface to application code, for example, on the PC. Note that the controller provides for time critical operations, freeing the application code to operate the device with a high latency i/f. Specifically, the controller supports interrupts and work-arounds. In another class, the equivalent of the eight-bit controller code resides on the system as the application; the PC does the job of the 8-bit controller. This last case is not shielded from the aforementioned time critical operations, but the application can adequately service the critical operations because of the low latency i/f. Note that these operations consume system resources because the application has more to do. In general, the more latency in a link (and where the latency may be not be constant), each component has some intelligence and ability to run relatively unsupervised is required to be in order to function correctly (i.e., xe2x80x9cloosely coupledxe2x80x9d system). For both classes, a CPU (8-bit controller in the first case and the PC CPU in the last case) can access the device quickly and is strongly coupled to the D.P. Note that the control response time is the critical factor in determining how much latency the system can tolerate. For Universal Serial Bus (USB) applications, the PC is far away in the control/response time interval (in the sense that there is intervening software and other communication media), which make the close coupling difficult.
A problem with accessing the data pump over a USB is the latencies the host experiences when attempting to perform turn-around register level I/O with USB nodes for both data pump control operations and data access operations. These prior systems have employed a fully intelligent controller responsible for nearly all communications control. The result has been a very costly remote smart device including a fully functional microcontroller and substantial memory.
A communication system utilizing a Universal Serial Bus communications link, in accordance with the invention, is divided into two distinct elements: a data pump element and a controller element. The data pump is physically separated from the controller element and is responsible for conventional signal processing operations such as might be performed by a digital signal processor (DSP). Communication is effected between the host (i.e., PC) and the data pump over the USB communications bus with the data pump located at a USB node. The data pump communicates with the controller via a predetermined communications protocol. The controller is, typically, co-located with a host computer and is responsible for commanding/communicating with the data pump. Removing the controller from the USB node to the host introduces large latencies. However, to combat latencies introduced by the USB pipe, time intensive control code is executed at the USB node as a set of interpreted commands. This interpreted set of commands is very low level requiring only minimal intelligence and memory at the USB node, but high enough to relieve timing latencies. Separate control and signal processing is provided so that modems can be manufactured with fewer components. These features translate into less expensive modems.